草庐IT

Android AsyncTask 内存泄漏

全部标签

c++ - wcsdup 分配的内存是否应该显式释放?

类似wcsdup的函数,隐式调用malloc为目标缓冲区分配内存。我想知道因为内存分配不是很明确,所以显式释放存储似乎合乎逻辑吗?这更像是一个设计困境,赞成和反对的理由如下应该被释放因为不释放它会导致内存泄漏。有据可查的是,wcsdup/_wcsdup调用malloc来分配内存,即使它是从C++程序调用的。不应被释放,因为wcsdup积累的内存最终会在程序退出时释放。在整个程序生命周期中,我们总是会遇到一些内存泄漏(除非我们大量调用wcsdup以获得较大的缓冲区大小)。它可能会造成混淆,因为free之前没有明确的malloc。由于它不是标准的一部分但符合posix,Microsoft实

c++ - 在 Windows 下使用共享内存。如何传递不同的数据

我目前尝试使用WindowsCreateFileMapping实现一些进程间通信机制。我知道我需要先用CreateFileMapping创建一个文件映射对象,然后用MapViewOfFile创建一个指向实际数据的指针。然后,该示例使用CopyMemory将数据放入映射文件。在我的应用程序中,我有一个图像缓冲区(1MB大),我想将其发送到另一个进程。所以现在我查询一个指向图像的指针,然后将整个图像缓冲区复制到映射文件中。但我想知道这是否真的有必要。难道不能只在共享内存中复制指向图像缓冲区数据的实际指针吗?我尝试了一下,但没有成功。 最佳答案

windows - 用于在 Windows 中显示内存中 MHTML 的 ActiveX 组件

我正在创建一个小型Windows应用程序(C++),它会创建一些这样的窗口(CreateWindowEx等)。在一个窗口中,我想添加一个控件来显示MHTML从内存加载,即整个MHTML内容在字符串中,而不是在文件中。我已经尝试过Shell.Explorer组件,但我找不到向它注入(inject)除HTML之外的任何内容的方法(请参阅AtlAxCreateControl)。是否可以使用Shell.Explorer组件或任何其他组件来显示内存中的MHTML?即不将内容写入文件,然后给出文件路径。这行得通,但它不是最佳选择,如果我不能以任何其他方式做到这一点,它必须是最后的选择。PS:如果这

c++ - 是否有可能获得由 'new' 分配的内存块大小?

你好,我需要记录我的堆,但现在我只想用我的函数重载"new"运算符。我需要总结在malloc()或Heap*()或其他windowsmem*函数之后增加的内存的实际字节数但现在我需要分析当前的堆实现。是否有可能获得像HeapAlloc()函数分配的block大小-HeapSize()?. 最佳答案 我看你没有搜索文档。HeapSize()exists.编辑回想起来,也许您正在寻求HeapSize()的替代方案,您可以在使用新。答案是否定的。标准分配例程没有任何关于内存块的信息,因为:这高度依赖于实现,并且您已经知道block大小(因

c++ - 我可以使用什么工具来分析内存使用情况?

关闭。这个问题不满足StackOverflowguidelines.它目前不接受答案。想改善这个问题吗?更新问题,使其成为on-topic对于堆栈溢出。7年前关闭。Improvethisquestion我有一个使用C++使用VisualStudio2008编写的Windows应用程序。我想获取有关内存使用情况的统计信息,以找到处理内存使用情况的瓶颈和位置。理想情况下,我希望有一个工具可以做到这一点,而无需进入并向代码本身添加计数器/分析逻辑。基本上我正在寻找的是:所有分配的列表(释放与否无关紧要,每次分配时我都想知道)每次分配的调用堆栈和一个计数器,表示调用代码和分配内存的次数。有关已

c++ - boost::regex 库中的内存泄漏

我不太喜欢Boost库。我需要它来匹配我在VS2008中编译的遗留C++/MFC项目中的正则表达式。这是一个简短的代码片段://NeedUnicodesupportCStringss;boost::tregexr(L"(.*?)");boost::tmatchwhat;CStringchat_input(L"Hello");if(boost::regex_match(chat_input,what,r))//Memoryleakonthisline{//extract$1asaCString:ss=L"Match";//CString(what[1].first,what.length

c# - MediaComposition.GetThumbnailAsync() 中的内存泄漏?

在Windows10上调用MediaComposition.GetThumbnailAsync()似乎会显着泄漏内存。从我在模拟器上看到的情况来看,WindowsPhone似乎没问题。也许我遗漏了一些明显的东西,任何人都可以对此有所了解吗?复制:创建空白的c#通用Windows项目。将按钮添加到MainPage.xaml,如下所示:将处理程序添加到MainPage.xaml.cs,如下所示:privateMediaComposition_comp=null;privateasyncvoidButton_Click(objectsender,RoutedEventArgse){if(_c

c++ - audiodg.exe 随着我调用的每个 Beep() 函数不断增长。系统不释放内存

有没有人遇到过调用WindowsBeep(freq,duration)时进程audiodg.exe内存泄漏的问题?我想这不是你通常会注意到的东西,但我发现它在调试和其他事情上很有用,我注意到在audiodg.exe中,每次哔声都会花费我大约1.5MB,它会随着每次哔声而增长,并且永远不会释放内存,除非我重新启动我的计算机或结束任务。我使用的是Windows8.1,它位于任务管理器的详细信息选项卡中。 最佳答案 我现在使用的是Windows10,但这种情况仍在发生。这不是一个很好的修复,但它确实为我消除了内存泄漏。只需转到您的声音设置

c++ - 查看进程内存映射的最佳程序是什么?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我需要查看进程使用的image/heap/malloc()/stack等资源。我知道内存验证器,但它缺少一些功能。

windows - 一个 "secret key"应该如何保留在内存中?

我们有一个服务器可以通过自定义登录程序安全地将key发送给客户端。该key随后用于加密进一步的客户端请求。该key像cookie一样保存在客户端的磁盘上,并由可能在客户端决定注销并导致key过时之前多次启动和停止的程序使用(因此key保存在磁盘上,因为当没有程序运行时,登录和注销之间可能会有很长时间。将key仅保存在内存中而不是磁盘上似乎更安全(如果崩溃或重新启动丢失key并随后强制重新登录也没关系)。在Windows上,在程序的单独执行之间仅将key保留在内存中(忽略内存可能是虚拟的并分页到磁盘)的最佳方法是什么?一个可能的解决方案是让一个普通的Windows服务在接受key的客户端